A storage network environment may comprise one or more storage controllers (e.g., nodes) configured to provide clients with access to client data stored within storage devices. For example, a first storage controller may provide a client with access to client data stored with a first storage device. Unfortunately, if the first storage controller fails or a disaster occurs, then the client may be unable to access the client data. Accordingly, a second storage controller may be configured as a failover storage controller for the first storage controller. Client data within the first storage device may be mirrored or replicated to a second storage device associated with the second storage controller (e.g., modifications to the client data may be replicated to the second storage device). Thus, when the first storage controller fails or the disaster occurs, the second storage controller can provide the client with failover access to replicated client data within the second storage device.
Various clients may maintain storage network environments with different hardware and/or software configurations. Determining an appropriate amount and type of hardware and/or software may be time consuming and error prone (e.g., merely manual rules of thumb and human estimations may be used). For example, a client may specify a client specified objective, such as a recovery point objective (RPO), corresponding to a maximum acceptable time period prior to a failure or disaster during which changes to client data may be lost as a consequence of recovery. That is, as data within the first storage device is modified, a data transfer utility may replicate the modified data from the first storage device to the second storage device. In order to achieve an RPO, the data transfer utility is constrained to transferring the modified data in less than or equal to half an RPO time of the RPO. However, the smaller RPO time may result in less time available to finish a transfer before starting a subsequent transfer. Thus, it may be advantageous to determine a desired RPO time and/or what hardware and software will provide such an RPO time, and it may also be advantageous to determine what RPO can be achieved given specified hardware and software.